XLAには、次の機能もあります。
接続中は、随時ttXlaGetLSN関数をコールして現行読取りLSNに関してシステムに問い合せることができます。一連の更新を繰り返し実行する必要がある場合は、ttXlaSetLSN関数を使用して、読取りLSNを最後のttXlaAcknowledgeによって設定された初期読取りLSNより大きい有効な値に設定できます。ここで、「大きい」とは、比較対象のLSNが同じトランザクション内のレコードのものである場合にのみ意味を持ちます。比較対象のLSNが異なるトランザクションに属しているレコードのものである場合は、LSNの数値が大きいとしても、別のトランザクションより前にコミットされたトランザクションのLSNは小さいLSNになります。初期読取りLSNを現行読取りLSNまで進める方法は、ttXlaAcknowledge関数をコールする方法のみです。この関数によって、現行読取りLSNまでのすべてのログ・レコードを取得および処理したということが示されます。特定のブックマークに対してttXlaAcknowledgeをコールすると、現行読取りLSNより小さいLSNを持つログ・レコードにアクセスできなくなります。
XLA関数ではありませんが、ログに対するライターでttApplicationContextをコールして、アプリケーションに関連付けられているバイナリ・データをXLAリーダーに渡すことができます。ttApplicationContextプロシージャは、現在のトランザクションが生成する次の更新レコードに返す1つのVARBINARY値を指定します。XLAを使って更新を読み込むアプリケーションでは、「NOT INLINE可変長列データの読込み」で説明されている方法で、この値へのポインタを取得できます。
コンテキストを設定するには、次の手順を実行します。
rc = SQLPrepare(hstmt, "call ttApplicationContext(?)", SQL_NTS); rc = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_VARBINARY, 0, 0, &contextBuffer, sizeof contextBuffer, &contextBufferLen);